package com.atguigu.spzx.common.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 被标记这个注解的方法会先从缓存查询数据，缓存有直接返回，没有查数据库放到缓存。利用查询缓存提高系统性能。
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface GuiguCache {

    /**
     * 缓存key的前缀
     * @return
     */
    public String cacheKey() ;  // 用来让使用者指定缓存的key的名称

    public String lockName() default "" ;         // 分布式锁的名称
    public boolean enableLock() default false ;   // 是否需要开启分布式锁
}
